package com.cpit.platform.security;

import com.cpit.platform.log.LogOperator;
import sun.rmi.runtime.Log;

import java.security.MessageDigest;

/**
 * Package name: com.cpit.platform.security
 * Author: zhanghaibin
 * Create time: 17/11/22
 */
public class SHA1Util {
    private static final String loggerName = SHA1Util.class.getName();

    public static String getSha1(String str){
        LogOperator.debug(loggerName, "get sha1 str from: " + str);
        if(str==null||str.length()==0){
            return null;
        }
        char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
                'a','b','c','d','e','f'};
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));

            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j*2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
                buf[k++] = hexDigits[byte0 & 0xf];
            }
            String returned = new String(buf);
            LogOperator.debug(loggerName, "get sha1 str return: " + returned);
            return returned;
        } catch (Exception e) {
            LogOperator.err(loggerName, "get sha1 error", e);
            return null;
        }
    }
}
